home *** CD-ROM | disk | FTP | other *** search
/ Speccy ClassiX 1998 / Speccy ClassiX 98.iso / amiga_system / the_aminet / dev / e / jrhrkrm2.lzh / Src / Tools / InitHook / inithook.e
Text File  |  1995-09-20  |  662b  |  27 lines

  1. OPT MODULE
  2.  
  3. MODULE 'utility/hooks'
  4.  
  5. EXPORT PROC inithook(hook:PTR TO hook, func, data=NIL)
  6.   hook.subentry:=func
  7.   hook.entry:={hookentry}
  8.   hook.data:=data
  9.   LEA.L storeA4(PC), A0  -> Copy A4 to safe place
  10.   MOVE.L A4, (A0)
  11. ENDPROC hook
  12.  
  13. storeA4:
  14.   LONG 0
  15.  
  16. hookentry:
  17.   MOVEM.L D2-D7/A2-A6,-(A7)  -> Save regs
  18.   MOVE.L  A0,-(A7)           -> Stuff parameters on stack for proc call
  19.   MOVE.L  A2,-(A7)
  20.   MOVE.L  A1,-(A7)
  21.   MOVE.L  storeA4(PC), A4    -> Reinstate A4
  22.   MOVE.L  12(A0),A0          -> Get sub-entry
  23.   JSR     (A0)               -> Execute function
  24.   LEA     12(A7),A7          -> Remove parameters
  25.   MOVEM.L (A7)+,D2-D7/A2-A6  -> Restore regs
  26.   RTS
  27.